package com.lits.search.hotKeys.func;

import java.util.List;
import java.util.Map;

/**
 * 热搜关键字，提供最热前n使用关键字的存储，校验，查询功能
 * @author Lizm
 *
 */
public interface IFrequencyHotkeys {
	/**
	 * 关键字更新频率
	 */
	long HOUR = 1*60*60*1000l;
	long DAY = 24*60*60*1000l;
	long WEEK = 7*24*60*60*1000l;
	long MONTH = 30*24*60*60*1000l;
	/**
	 * 所有特殊字符
	 */
	String PATTERN_DOT = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]|\n|\r|\t${1,}";
	/**
	 * 所有语义字符
	 */
	String SEMANTICS_STR = "and|in|to|had|to|have|a|the|me|would|I|as|of|but|were|still|below|he|was|that|his|could|for|He|on|it|us|not|We|we|with|When|when|him|our|before|few|how|at";
	
	/**
	 * 创建新的HotKey存储空间
	 * @return
	 *  创建成功返回1
	 */
	int createKeyRepository();
	
	/**
	 * 添加一个hot key
	 * @param key 
	 * @return
	 * 	添加成功返回1
	 */
	int addKey(String key);
	
	/**
	 * 校验Key是否可以添加
	 * @return
	 * 	可以添加返回true
	 */
	boolean validateKey(String key);
	
	/**
	 * 存储Hotkey
	 * @return
	 *  存储成功返回1
	 */
	int storeKeyRepository(Map<String, Integer> keys);
	
	/**
	 * 获取前n名最热HotKey
	 * @param rangeInt 前n名
	 * @return
	 * 	HotKey列表
	 */
	List<String> getTopHot(int rangeInt);
}
